package com.vcit.system.service.student;

import java.util.List;

import com.vcit.common.core.domain.entity.TStudent;
import com.vcit.system.domain.student.StudentDTO;

import com.vcit.system.domain.vo.StudentListVo;

/**
 * 学生Service接口
 *
 * @author dff
 * @date 2025-01-17
 */
public interface ITStudentService
{
    /**
     * 查询学生
     *
     * @param id 学生主键
     * @return 学生
     */
    public StudentListVo selectTStudentById(Long id);

    public StudentListVo selectStudentVoById(Long id);

    /**
     * 查询学生列表
     *
     * @param tStudent 学生
     * @return 学生集合
     */
    public List<TStudent> selectTStudentList(TStudent tStudent);

    /**
     * 新增学生
     *
     * @param Student 学生
     * @return 结果
     */
    public int insertTStudent(StudentDTO Student);

    /**
     * 修改学生
     *
     * @param student 学生
     * @return 结果
     */
    public int updateTStudent(StudentDTO student);

    /**
     * 批量删除学生
     *
     * @param ids 需要删除的学生主键集合
     * @return 结果
     */
    public int deleteTStudentByIds(Long[] ids);

    /**
     * 删除学生信息
     *
     * @param id 学生主键
     * @return 结果
     */
    public int deleteTStudentById(Long id);

    /**
     *
     * @return
     */
    public List<StudentListVo> selectStudentAllInfoList(StudentListVo studentListVo);

    /**
     * 导入学生数据
     *
     * @param studentList 学生数据列表
     * @param updateSupport 是否支持更新，如果已存在，则进行更新数据
     * @param operName 操作人
     * @return 结果
     */
    public String importStudent(List<StudentListVo> studentList, Boolean updateSupport, String operName);

    /**
     * 根据姓名查询学生信息
     *
     * @param name 学生姓名
     * @return 学生对象信息
     */
    public TStudent selectStudentByName(String name);

    /**
     * 根据身份证号查询学生信息
     *
     * @param idCard 身份证号
     * @return 学生对象信息
     */
    public TStudent selectStudentByIdCard(String idCard);



    /**
     * 校验身份证号是否唯一
     *
     * @param student 学生信息
     * @return 结果
     */
    public boolean checkIdCardUnique(TStudent student);
}